package com.tbit.uqbike.service.business;

import com.tbit.common.entity.view.Result;
import com.tbit.uqbike.object.pojo.dto.OperatingMachineDTO;
import com.tbit.uqbike.object.pojo.dto.OperatingMapMonitoringDTO;
import com.tbit.uqbike.object.pojo.vo.OperatingMapMachineStatus;
import com.tbit.common.entity.view.PageResult;
import com.tbit.uqbike.object.pojo.vo.OperatingMonitorV2VO;

import java.util.List;

/**
 * 车辆监控-运营地图
 *
 * @Author:BUGTian
 * @DATE: 2022/11/7
 */
public interface OperatingMapService {
    /**
     * 车辆监控数据
     *
     * @param adAccountId
     * @param mapType
     * @param regionIds
     * @param machineType
     * @return
     */
    List<OperatingMapMachineStatus> operatingMapMonitoring(Integer adAccountId, Integer mapType, String regionIds, Integer machineType);


    /**
     * 分页查询车辆监控数据
     *
     * @param mapType             .
     * @param page                .
     * @param size                .
     * @param operatingMachineDTO .
     * @return .
     */
    PageResult<OperatingMapMachineStatus> operatingMapMonitoringPage(Integer mapType, Integer page, Integer size,
                                                                     OperatingMachineDTO operatingMachineDTO);

    /**
     * 查询车辆状态
     *
     * @param machineId
     * @return
     */
    OperatingMapMachineStatus queryMachineStatus(Integer machineId);

    /**
     * 根据区域id查询车辆监控数据
     *
     * @param accountId 区域id
     * @param sortType  排序方式
     * @param userCode  车辆编号
     */
    List<OperatingMapMachineStatus> getMonitoringByAccountId(Integer accountId, Integer sortType, String userCode);

    /**
     * 查询车辆监控数据
     * @param dto dto
     * @return PageResult
     */
    List<OperatingMonitorV2VO> operatingMapMonitoringV2(OperatingMapMonitoringDTO dto);

    /**
     * 查询车辆监控数据-分页
     * @param dto dto
     * @return  PageResult
     */
    PageResult<OperatingMonitorV2VO> operatingMapMonitoringV2Page(OperatingMapMonitoringDTO dto);
}
